package samsung.sds.business.vdiManagementSystem.vdiManagement.service;

import java.util.List;

import samsung.sds.business.vdiManagementSystem.systemManagement.model.SystemInfoEntity;
import samsung.sds.business.vdiManagementSystem.vdiManagement.model.VDIInfoEntity;
import samsung.sds.business.vdiManagementSystem.vdiManagement.model.VDISystemREndity;
import samsung.sds.business.vdiManagementSystem.vdiManagement.model.VDIUserREntity;
import samsung.sds.business.vdiManagementSystem.vdiManagement.model.VDIUserEntity;
import samsung.sds.system.common.baseQuery.BaseServiceInterface;
import samsung.sds.system.common.baseQuery.model.PageData;
import samsung.sds.system.common.model.QueryParam;
import samsung.sds.userManagement.model.UserEntity;


public interface VDIManagementService extends BaseServiceInterface<VDIInfoEntity>{
	
	
	/**
	 * 根据部门查询VDI信息
	 * @param param
	 * @return
	 */
	PageData<VDIInfoEntity> vdiInfoQueryListPage( QueryParam param );
	/**
	 * 根据查询条件去查询
	 * @param param
	 * @return
	 */
	PageData<VDIInfoEntity>queryVdiInfoQueryListPage(QueryParam param );
	
	/**
	 * 获取vdi下分配的系统数量
	 * @param id
	 * @return
	 */
	int queryVdiSystemCount(String id );
	
	/**
	 * 
	 * @param id
	 * @return
	 */
	List<UserEntity> queryVdiUsers(String id);
	
	/**
	 * 删除vdi，将字段is_delete更新为1
	 * @param ids
	 * @return
	 */
	int updateVDIInfo(List<String>ids);

	/**
	 * 删除vdi_user关系表数据
	 * @param ids
	 * @return
	 */
	int deleteVdiUser(List<String> ids);

	/**
	 * 删除vdi_sys关系表数据
	 * @param ids
	 * @return
	 */
	int deleteVdiSys(List<String> ids);

	
	/**
	 * 插入VDI系统信息
	 * @param vdiSystemREndity
	 * @return
	 */
	int insertVdiSystemR(VDISystemREndity vdiSystemREndity);
	/**
	 * 插入VDI用户信息
	 * @param vdiUserREntity
	 * @return
	 */
	int insertVdiUserR(VDIUserREntity vdiUserREntity);
	/**
	 * 删除VDI用户信息
	 * @param id
	 * @return
	 */
	int deleteVdiSystemR(VDISystemREndity vdiSystemREndity);
	/**
	 * 删除VDI系统信息
	 * @param id
	 * @return
	 */
	int deleteVdiUserR(VDIUserREntity vdiUserREntity);
	/**
	 * 通过id进行查找
	 * @param vdiInfoEntity
	 * @return
	 */
	VDIInfoEntity queryVdiListById(VDIInfoEntity vdiInfoEntity);
	
	/**
	 * 通过ip进行查找
	 * @param vdiInfoEntity
	 * @return
	 */
	VDIInfoEntity queryVdiListByIp(VDIInfoEntity vdiInfoEntity);
	/**
	 * 
	 * @param vdiInfoEntity
	 * @return
	 */
	int insertVdiInfo(VDIInfoEntity vdiInfoEntity);
	
	/**
	 * 查询用户信息
	 * @param vdiInfoEntity
	 * @return
	 */
	List<UserEntity> queryVdiUserREndity(VDIInfoEntity vdiInfoEntity);
	
	/**
	 * 查询系统信息
	 * @param vdiInfoEntity
	 * @return
	 */
	List<SystemInfoEntity> queryVdiSystemREndity(VDIInfoEntity vdiInfoEntity);
	
	/**
	 * 更新vdi详细信息
	 * @param vdiInfoEntity
	 * @return
	 */
	int updateVDIInfoDetail(VDIInfoEntity vdiInfoEntity);
	
	/**
	 * 检测登录名称是否重名
	 * @param vdiInfoEntity
	 * @return
	 */
	List<VDIInfoEntity> queryByLoginName(VDIInfoEntity vdiInfoEntity);
}
